// ==UserScript==
// @name         Auto Check or Open Living Screen Tab
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  自动检查标签页是否已打开直播大屏（仅当页面中存在“直播中”文本时生效）
// @author       DGY
// @match        https://buyin.jinritemai.com/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    // 目标地址
    const targetUrlBase = 'https://compass.jinritemai.com/screen/live/shortcut-entry?origin_url=https%3A%2F%2Fcompass.jinritemai.com%2Fscreen%2Flive%2Ftalent%3Fsource%3Dbaiying_live_data%26live_room_id%3D7455534086770232064%26live_app_id%3D1128';
    const targetUrlRegex = /^https:\/\/compass\.jinritemai\.com\/screen\/live\/talent.*/;

    // 定义存储已打开窗口的句柄数组
    let openedTabs = [];

    // 检查页面中是否存在包含"直播中"文本的span标签
    function isLiveStreaming() {
        const spans = document.querySelectorAll('span');
        return Array.from(spans).some(span => span.textContent.trim() === '直播中');
    }

    // 检查或打开标签页的函数
    function checkOrOpenTab() {
        console.log('检查页面状态和标签页...');
        // 仅当页面中存在"直播中"文本时继续
        if (!isLiveStreaming()) {
            console.log('页面中未检测到"直播中"文本，不进行操作。');
            return;
        }

        // 检查当前已打开的标签页
        const existingTab = openedTabs.find(tab => tab && !tab.closed && targetUrlRegex.test(tab.location?.href));

        if (existingTab) {
            console.log('指定标签页已存在，不进行任何操作。');
            existingTab.focus(); // 激活已存在的标签页（可选）
        } else {
            console.log('未找到指定标签页，打开新标签页...');
            const newTab = window.open(targetUrlBase, '_blank');
            if (newTab) {
                openedTabs.push(newTab); // 保存新标签页的句柄
            } else {
                console.error('无法打开新标签页，可能被浏览器拦截。');
            }
        }
    }

    // 自动执行：每隔 5 秒检查一次（可以根据需要调整间隔时间）
    setInterval(checkOrOpenTab, 5000);
})();
